剑指offer 53.表示数值的字符串

剑指offer 53.表示数值的字符串

题目

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。

思路

三种思路:

  1. 正则表达式,这里要注意转义符号的使用。
  2. 自动机,编译原理中的概念,已经忘了.
  3. 遍历,硬算,设几个标签量来记录符号等,然后ifelse结束.

代码

1
2
3
4
public boolean isNumeric(char[] str) {
String que=String.valueOf(str);
return que.matches("[\\+-]?[0-9]*(\\.[0-9]*)?([eE][\\+-]?[0-9]+)?");
}
---本文结束,感谢阅读---